Conversation
FE 개발자가 로컬에서 마이페이지 API 전반을 시각적으로 검증할 수 있도록
prisma db seed 명령으로 한 번에 채울 수 있는 테스트 데이터 인프라를 도입한다.
## 구현
- package.json
- scripts.prisma:seed
- prisma.seed: ts-node + tsconfig-paths 기반 entry
- prisma/seed.ts: entry point (production 가드 포함)
- prisma/seed/idempotent.ts: 시드 영역(seed-user-* / [SEED] *) 정리 헬퍼
- prisma/seed/{users,stores,orders,reviews,wishlist,recent-views,
notifications,custom-drafts,search-history}.ts
## 시드 시나리오
마이페이지 API 거의 모든 분기를 한 번에 검증할 수 있도록 구성:
- 유저 2명 (온보딩 완료 / 미완료)
- 매장 2개 + 상품 5개 (sale_price 있음/없음, 비활성 1)
- 주문 6건 (각 status + PICKED_UP에 리뷰 작성/미작성 둘 다)
- o2에 selectedOptions/customTexts/customFreeEdits 포함
- 리뷰 1건 (IMAGE+VIDEO 미디어 포함)
- 찜 3건 (visible 2 + invisible 1로 visibleWishlistWhere 검증)
- 최근 본 상품 4건
- 알림 3건 (unread 2 / read 1)
- 커스텀 드래프트 2건 (IN_PROGRESS / READY_FOR_ORDER)
- 검색 히스토리 3건
## 부수 변경
docker-compose.yml과 docker/mysql/init/01-grant-shadow-db.sql:
- prisma client 6.x가 일부 환경에서 caching_sha2_password를
sha256_password로 잘못 인식하는 호환 이슈 회피.
- mysql_native_password로 통일 (default-authentication-plugin
옵션 + ALTER USER 이중 안전망).
README.md: 테스트 데이터 시드 사용법 섹션 추가.
## 검증
- 첫 실행 / 두 번째 실행 모두 성공 (idempotent)
- NODE_ENV=production 차단 동작 확인
- npx tsc --noEmit 통과
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Coverage report
Test suite run success868 tests passing in 77 suites. Report generated by 🧪jest coverage report action from 1e1d317 |
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
Summary
FE 개발자가 로컬에서 마이페이지 API 전반을 시각적으로 검증할 수 있도록
yarn prisma:seed 한 번에 채울 수 있는 테스트 데이터 인프라를 도입한다.
본 PR은 마이페이지 FE 온보딩 작업 플랜의 Stage B (B-1 시드 인프라 + B-2 시나리오) 묶음.
README 갱신은 다른 가이드와의 톤·언어 일관성을 위해 별도 작업으로 미룸.
구현
시드 시나리오
마이페이지 API 거의 모든 분기를 한 번에 검증 가능하도록 구성:
부수 변경 (MySQL 인증 plugin 호환 fix)
prisma client 6.x가 일부 환경에서 caching_sha2_password를 sha256_password로
잘못 인식하는 호환 이슈가 있어 mysql_native_password로 통일:
기존 컨테이너에는 영향 없음 (새 셋업 시 자동 적용). 기존 컨테이너에서 시드 돌리려면
docker exec caquick-mysql mysql -uroot -proot -e "ALTER USER 'caquick'@'%' IDENTIFIED WITH mysql_native_password BY 'caquick'; FLUSH PRIVILEGES;" 한 번 실행.
검증